package cn.xuguowen.user.designPatten.strategy;

import java.util.Arrays;
import java.util.Comparator;

/**
 * ClassName: Main
 * Package: cn.xuguowen.user.designPatten.strategy
 * Description:
 * 策略模式在JDK源码中的体现
 * 1.Comparator接口
 *
 * @Author 徐国文
 * @Create 2023/4/28 14:29
 * @Version 1.0
 */
public class Main {

    public static void main(String[] args) {
        // Arrays.sort()方法
        Integer[] array = new Integer[]{1, 5, 9, 7, 2, 3, 22};

        // Comparator接口实际上就是一个策略接口，其中有一个抽象方法compare()方法
        // 匿名对象实际就是一个策略接口的实现类，实现了compare()方法
        // 当然了，可以将匿名对象的方式改为Lambda表达式的方式
        Comparator<Integer> comparator = new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        };

        Arrays.sort(array,comparator);

        System.out.println(Arrays.toString(array));
    }
}
